§1.1 Field of the Invention
The present invention concerns the efficient transmission of data. More specifically, the present invention concerns the transmission of peer-to-peer (P2P) video streams from multiple supplying peers, to a receiving peer where the video streams are combined and decoded.
§1.2 Related Art
Recently, P2P techniques have become a popular solution for large scale video live streaming and on-demand services. In the articles, V. N. Padmanabhan, H. J. Wang, P. A. Chou, and K. Sripanid-kulchai, “Distributing streaming media content using cooperative networking,” Proceedings of NOSSDAV, 2002 (incorporated herein by reference), and X. Xu, Y. Wang, S. S. Panwar, and K. W. Ross, “A peer-to-peer video-on-demand system using multiple description coding and server diversity,” IEEE International Conference on Image Processing(ICIP), Oct. 2004 (incorporated herein by reference), multiple description forward error correction (“MD-FEC”) technique has been employed to overcome peer failures which frequently occur in a P2P network. In the P2P scenario, a receiving peer streams multiple substreams (normally more than two) from different supplying peers. Due to a storage constraint or the lack of content during distribution, the supplying peers may not hold all substreams. When the substreams have nesting dependence, such as layered coding, the loss of one substream may affect the other substreams. On the other hand, with multiple description coding (MDC), each substream has the same importance, and when any one of the substreams becomes unavailable, the video quality is not severely degraded. Therefore, MDC is robust to a sudden peer disconnection.
FIG. 1 illustrates an environment 100 in which MDC is applied in P2P video streaming. Supplying peers 110 provide separate descriptions (or substreams) 140 to the receiving peer 120 either via a direct communication or via one or more networks 130. By using MDC, failure of supplying peer 3 110c (or some other failure which prevents description 140c from reaching the receiving peer 120) does not affect the decoding of the other substreams 140a, 140b and 140d. 
In the area of MDC, considerable work has been done for video transmitted over lossy networks. A review of MD video coding principles and techniques can be found in the article, Y. Wang, A. R. Reibman, and S. Lin, “Multiple description coding for video delivery,” Proceeding of the IEEE, pp. 57-70 (January 2005) (incorporated herein by reference). Most of these solutions consider how to generate two descriptions efficiently. Multiple description forward error correction coding (MD-FEC), described in the article, R. Puri and K. Ramchandran, “Multiple description source coding through forward error correction codes,” 33rd Asilomar Conf. Signals, Systems and Computers, October 1999 (incorporated herein by reference), provides a popular scheme for multiple description coding that can generate a large number of descriptions. However, as described below, MD-FEC introduces significant redundancy across streams, even with an optimal layer partition as described in the Puri article. Consequently, when MD-FEC is used, the source coder requires a higher bit rate to reach the same target decoding quality as a single description codec. Consequently, in the absence of transmission loss, MD-FEC does not utilize transmission bandwidth efficiently. Therefore, it would be useful to use transmission bandwidth more efficiently, particularly when transmission loss is not an issue.
MD-FEC coding is explained with reference to FIG. 2. As shown at the top of FIG. 2, the original scalable bitstream 200 from each group of frames (“GOF”) is partitioned into M (M=4 in the example) layers 210a-210d. The bitrate of layer k is defined as Rk. For k=1, . . . , M, the k layer is divided into k equal-length groups. Thus, as shown, layer L1 includes one (1) group 220a, layer L2 includes two (2) equal-length groups 220b, layer L3 includes three (3) equal-length groups 220c, and layer L4 includes four (4) equal-length groups 220d. An (M,k) forward error correction code (e.g., the Reed-Solomon (RS) code) is then applied to k groups to yield M groups, 250a-250d denoted by m. Each of the plurality of descriptions 260a-260d is formed by packing bits from a corresponding group m from all layers k.
At the receiving peer, if any m descriptions (of the total M descriptions) 260a-260d are received, the decoder can recover the first m layers of the original bitstream 200. Therefore, if any one of the four descriptions 260a-260d is received, L1 210a of the original bitstream 200 can be recovered, if any two of the four descriptions 260a-260d are received, L1 210a and L2 210b of the original bitstream 200 can be recovered, if any three of the four descriptions 260a-260d are received, L1 210a, L2 210b and L3 210c of the original bitstream 200 can be recovered, and if the four descriptions 260a-260d are received, L1 210a, L2 210b, L3 210c and L4 210d can be recovered.
Note that for purposes of decoding a video stream, the first layer L1 is the most important, the second layer L2 is the next most important, the third layer L3 is the next most important, and the last layer L4 is the least important. Thus, the receiving peer distortion for MD-FEC can be controlled by varying the layer partition. By using fine granularity stream, the optimal layer partition has been proposed in the Puri article. With the optimal layer partition, the layer partition is adapted to the distribution of received descriptions to maximize the average received video quality, subject to a constraint on the total rate of all MD-FEC descriptions.
Although the foregoing example described MD-FEC with respect to four layers and four descriptions, different numbers of layers (and consequently different numbers of descriptions) can be used in a manner consistent with the present invention.
To make each description 260a-260d have equal importance in MD-FEC, redundant bits are transmitted. Unfortunately, as observed by the present inventors, some unhelpful bits are also transmitted. Referring to FIG. 3 for example, when M=4, and only two descriptions 260a and 260b are available to a receiving peer, the descriptions include unhelpful bits 310. More specifically, since only layers L1 and L2 of the original bitstream will be decoded at the receiving peer, the information related to layers L3 and L4 is not useful. The present inventors have used this observation in order to transmit information of (or derived from) the original bitstream 200 more efficiently.